package com.piesat.quake.business.device.model;

import com.baomidou.mybatisplus.annotation.TableName;
import com.piesat.quake.business.device.mqtt.anno.CharField;
import com.piesat.quake.business.device.mqtt.anno.ConvertField;
import com.piesat.quake.business.device.mqtt.anno.IgnoreField;
import com.piesat.quake.business.device.mqtt.anno.PipelineNode;
import com.piesat.quake.business.device.mqtt.convert.TimestampConvert;

/**
 * 地震事件文件
 *
 * @author Gersy
 * @date 2023/3/10
 * @since 1.0
 */
@TableName("event_data")
@PipelineNode(preNodes = {BaseModel.class})
public class EventData extends BaseModel {
    @IgnoreField
    @CharField(8)
    protected String id;
    //6	触发号⑧	Int	4B	采集站点从运行开始，累计触发的次数。
    private Integer number;
    //7	触发开始时间戳	Double	8B	格林威治时间1970年01月01日00时00分00秒（北京时间1970年01月01日08时00分00秒）起至地震触发开始时间的总秒数。
    @ConvertField(length = 8, convert = TimestampConvert.class)
    private Long startTime;
    //8	事件触发原因	Byte	1B	1表示产生地震阈值触发（二进制1）；
    //2表示产生地震STA/LTA比值触发（二进制10）；
    //...（可扩展）
    //多种方式均检测到地震触发则数值相加；
    private Byte cause;
    //9	烈度	Char	1B	自上次报文发送始的时间间隔内的地震烈度。
    private Byte intensity;
    //10	振幅	Float	4B	自上次报文发送始的时间间隔内统计到的最大振幅。
    private Float oscillation;
    //11	STA/LTA比值	Float	4B	自上次报文发送始的时间间隔内统计到的最大STA/LTA比值。
    private Float staLtaThreshold;
    //12	最大振幅	Float	4B	从触发开始，到目前时间内统计到的最大振幅。
    private Float maxOscillation;
    //13	最大STA/LTA比值	Float	4B	从触发开始，到目前时间内统计到的最大STA/LTA比值。
    private Float maxStaLtaThreshold;

    public Integer getNumber() {
        return number;
    }

    public void setNumber(Integer number) {
        this.number = number;
    }

    public Long getStartTime() {
        return startTime;
    }

    public void setStartTime(Long startTime) {
        this.startTime = startTime;
    }

    public Byte getCause() {
        return cause;
    }

    public void setCause(Byte cause) {
        this.cause = cause;
    }

    public Byte getIntensity() {
        return intensity;
    }

    public void setIntensity(Byte intensity) {
        this.intensity = intensity;
    }

    public Float getOscillation() {
        return oscillation;
    }

    public void setOscillation(Float oscillation) {
        this.oscillation = oscillation;
    }

    public Float getStaLtaThreshold() {
        return staLtaThreshold;
    }

    public void setStaLtaThreshold(Float staLtaThreshold) {
        this.staLtaThreshold = staLtaThreshold;
    }

    public Float getMaxOscillation() {
        return maxOscillation;
    }

    public void setMaxOscillation(Float maxOscillation) {
        this.maxOscillation = maxOscillation;
    }

    public Float getMaxStaLtaThreshold() {
        return maxStaLtaThreshold;
    }

    public void setMaxStaLtaThreshold(Float maxStaLtaThreshold) {
        this.maxStaLtaThreshold = maxStaLtaThreshold;
    }
}
